home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / misc / gfront11.lha / GUIFront / Demos / Source / reqtools2.c < prev    next >
C/C++ Source or Header  |  1994-11-01  |  7KB  |  208 lines

  1.  
  2. /* ReqTools2.c - The GUI of the 'ReqTools' preferences utility
  3.  *
  4.  * This is a GUIFront example GUI. To build an example, compile and link this
  5.  * file with Generic.o (also supplied).
  6.  * Everything prefixed with DEMO_ is exported to Generic.o.
  7.  */
  8.  
  9. #include <libraries/guifront.h>
  10.  
  11. /* This GUI is the same as 'ReqTools.c', only we've added some frames to
  12.  * make it look better
  13.  */
  14.  
  15. /* First, some Gadget ID's */
  16.  
  17. enum
  18. {
  19.     GID_SCREENTOFRONT,
  20.     GID_USEDEFAULT,
  21.     GID_IMMEDIATESORT,
  22.     GID_DRAWERSFIRST,
  23.     GID_MIX,
  24.     GID_DISKLED,
  25.     GID_DEFAULTSFOR,
  26.     GID_SIZE,
  27.     GID_ENTRIESMIN,
  28.     GID_ENTRIESMAX,
  29.     GID_POSITION,
  30.     GID_OFFSETX,
  31.     GID_OFFSETY,
  32.     GID_SAVE,
  33.     GID_USE,
  34.     GID_CANCEL,
  35.     GID_SIZETXT,
  36.     GID_NUMBERTXT,
  37. };
  38.  
  39. /* Some data and tag items we'll be needing later */
  40.  
  41. static const STRPTR defaultslabels[] =
  42. {
  43.     "File Requester",
  44.     "Font Requester",
  45.     "Palette Requester",
  46.     "Screen Mode Requester",
  47.     "Volume Requester",
  48.     "Other Requesters",
  49.     NULL,
  50. };
  51.  
  52. static const struct TagItem defaultstags[] =
  53. {
  54.     {GTCY_Labels, defaultslabels},
  55.     {TAG_DONE},
  56. };
  57.  
  58. static const STRPTR positionlabels[] =
  59. {
  60.     "Mouse Pointer",
  61.     "Center in Window",
  62.     "Center on Screen",
  63.     "Top left of Window",
  64.     "Top left of Screen",
  65.     NULL,
  66. };
  67.  
  68. static const struct TagItem positiontags[] =
  69. {
  70.     {GTCY_Labels, positionlabels},
  71.     {TAG_DONE},
  72. };
  73.  
  74. static const struct TagItem sizetags[] =
  75. {
  76.     {GTSL_Min, 25},
  77.     {GTSL_Max, 100},
  78.     {TAG_DONE},
  79. };
  80.  
  81. /* Now, the GadgetSpec's we'll be needing for this GUI */
  82.  
  83. static GadgetSpec gadgetspecs[] =
  84. {
  85.     {CHECKBOX_KIND, 0,0, {0,0,0,0,"_Pop screen to front",NULL,GID_SCREENTOFRONT, PLACETEXT_RIGHT}, NULL, GS_DefaultTags},
  86.     {CHECKBOX_KIND, 0,0, {0,0,0,0,"Us_e system default font",NULL,GID_USEDEFAULT, PLACETEXT_RIGHT}, NULL, GS_DefaultTags},
  87.     {CHECKBOX_KIND, 0,0, {0,0,0,0,"_Immediate sort",NULL,GID_IMMEDIATESORT, PLACETEXT_RIGHT}, NULL, GS_DefaultTags},
  88.     {CHECKBOX_KIND, 0,0, {0,0,0,0,"_Display drawers first",NULL,GID_DRAWERSFIRST, PLACETEXT_RIGHT}, NULL, GS_DefaultTags},
  89.     {CHECKBOX_KIND, 0,0, {0,0,0,0,"Mi_x files and drawers",NULL,GID_MIX, PLACETEXT_RIGHT}, NULL, GS_DefaultTags},
  90.     {CHECKBOX_KIND, 0,0, {0,0,0,0,"Dis_k activity LED",NULL,GID_DISKLED, PLACETEXT_RIGHT}, NULL, GS_DefaultTags},
  91.     {CYCLE_KIND,    0,0, {0,0,0,0,"De_faults for",NULL,GID_DEFAULTSFOR,PLACETEXT_LEFT | NG_HIGHLABEL},defaultstags,GS_DefaultTags},
  92.     {SLIDER_KIND,   0,0, {0,0,0,0,"70%",NULL,GID_SIZE,PLACETEXT_LEFT},sizetags,GS_DefaultTags},
  93.     {INTEGER_KIND,   4,0, {0,0,0,0,"_Minimum",NULL,GID_ENTRIESMIN,PLACETEXT_LEFT},NULL,GS_DefaultTags | GS_NoWidthExtend},
  94.     {INTEGER_KIND,   4,0, {0,0,0,0,"M_aximum",NULL,GID_ENTRIESMAX,PLACETEXT_LEFT},NULL,GS_DefaultTags | GS_NoWidthExtend},
  95.     {CYCLE_KIND,    0,0, {0,0,0,0,"P_osition:",NULL,GID_POSITION,PLACETEXT_LEFT},positiontags,GS_DefaultTags},
  96.     {INTEGER_KIND,   4,0, {0,0,0,0,"Offse_t:",NULL,GID_OFFSETX, PLACETEXT_LEFT},NULL,GS_DefaultTags | GS_NoWidthExtend},
  97.     {INTEGER_KIND,   4,0, {0,0,0,0,NULL,NULL,GID_OFFSETY, PLACETEXT_LEFT},NULL,GS_DefaultTags | GS_NoWidthExtend},
  98.     {BUTTON_KIND,   0,0, {0,0,0,0,"_Save", NULL, GID_SAVE, PLACETEXT_IN}, NULL, GS_DefaultTags},
  99.     {BUTTON_KIND,   0,0, {0,0,0,0,"_Use", NULL, GID_USE, PLACETEXT_IN}, NULL, GS_DefaultTags | GS_BoldLabel},
  100.     {BUTTON_KIND,   0,0, {0,0,0,0,"_Cancel", NULL, GID_CANCEL, PLACETEXT_IN}, NULL, GS_DefaultTags},
  101.     {TEXT_KIND,     0,0, {0,0,0,0,"Size (% of visible height):",NULL,GID_SIZETXT,PLACETEXT_IN  | NG_HIGHLABEL},NULL,GS_DefaultTags},
  102.     {TEXT_KIND,     0,0, {0,0,0,0,"Number of visible entries:",NULL,GID_NUMBERTXT,PLACETEXT_IN | NG_HIGHLABEL},NULL,GS_DefaultTags},
  103. };
  104.  
  105. /* Now, we group all of these GadgetSpecs into an array of pointers, so the
  106.  * layout engine can locate gadgets merely by their Gadget IDs.
  107.  */
  108.  
  109. GadgetSpec *DEMO_GadgetSpecList[] =
  110. {
  111.     &gadgetspecs[0], &gadgetspecs[1], &gadgetspecs[2], &gadgetspecs[2],
  112.     &gadgetspecs[3], &gadgetspecs[4], &gadgetspecs[5], &gadgetspecs[6],
  113.     &gadgetspecs[7], &gadgetspecs[8], &gadgetspecs[9], &gadgetspecs[10],
  114.     &gadgetspecs[11], &gadgetspecs[12], &gadgetspecs[13], &gadgetspecs[14],
  115.     &gadgetspecs[15], &gadgetspecs[16], &gadgetspecs[17],
  116.     NULL,
  117. };
  118.  
  119. /* Finally, the layout tag list itself. This is where most of the work is
  120.  * done. This list completely describes how the above gadgets are arranged
  121.  * in groups in the GUI.
  122.  */
  123.  
  124. ULONG DEMO_LayoutList[] =
  125. {
  126.     GUIL_Flags, GUILF_PropShare | GUILF_EqualWidth,
  127.  
  128.     GUIL_HorizGroup, 1,
  129.         GUIL_Flags, GUILF_PropShare | GUILF_EqualHeight,
  130.  
  131.         GUIL_VertGroup, 1,
  132.             GUIL_Flags, GUILF_PropShare | GUILF_EqualWidth,
  133.             GUIL_VertGroup, 1,
  134.                 GUIL_Flags, GUILF_PropShare | GUILF_EqualWidth,
  135.                 GUIL_FrameType, GUILFT_Ridge,
  136.                 GUIL_FrameHeadline, "General",
  137.                 GUIL_GadgetSpecID, GID_SCREENTOFRONT,
  138.                 GUIL_GadgetSpecID, GID_USEDEFAULT,
  139.             TAG_DONE,
  140.  
  141.             GUIL_VertGroup, 1,
  142.                 GUIL_Flags, GUILF_PropShare | GUILF_EqualWidth,
  143.                 GUIL_FrameType, GUILFT_Ridge,
  144.                 GUIL_FrameHeadline, "File Requester",
  145.  
  146.                 GUIL_GadgetSpecID, GID_IMMEDIATESORT,
  147.                 GUIL_GadgetSpecID, GID_DRAWERSFIRST,
  148.                 GUIL_GadgetSpecID, GID_MIX,
  149.                 GUIL_GadgetSpecID, GID_DISKLED,
  150.             TAG_DONE,
  151.         TAG_DONE,
  152.  
  153.         GUIL_VertGroup, 1,
  154.             GUIL_Flags, GUILF_PropShare | GUILF_EqualWidth,
  155.             GUIL_GadgetSpecID, GID_DEFAULTSFOR,
  156.  
  157.             GUIL_VertGroup, 1,
  158.                 GUIL_Flags, GUILF_PropShare | GUILF_EqualWidth,
  159.                 GUIL_FrameType, GUILFT_Recess,
  160.                 GUIL_GadgetSpecID, GID_SIZETXT,
  161.                 GUIL_GadgetSpecID, GID_SIZE,
  162.                 GUIL_GadgetSpecID, GID_NUMBERTXT,
  163.                 GUIL_VertGroup, 1,
  164.                     GUIL_Flags, GUILF_PropShare | GUILF_EqualWidth | GUILF_LabelAlign,
  165.                     GUIL_HorizGroup, 1,
  166.                         GUIL_Flags, GUILF_PropShare | GUILF_EqualHeight,
  167.                         GUIL_GadgetSpecID, GID_ENTRIESMIN,
  168.                         GUIL_GadgetSpecID, GID_ENTRIESMAX,
  169.                     TAG_DONE,
  170.                     GUIL_GadgetSpecID, GID_POSITION,
  171.                     GUIL_HorizGroup, 0,
  172.                         GUIL_Flags, GUILF_PropShare | GUILF_EqualHeight,
  173.                         GUIL_GadgetSpecID, GID_OFFSETX,
  174.                         GUIL_GadgetSpecID, GID_OFFSETY,
  175.                     TAG_DONE,
  176.                 TAG_DONE,
  177.             TAG_DONE,
  178.         TAG_DONE,
  179.     TAG_DONE,
  180.  
  181.     GUIL_HorizGroup, 1,
  182.         GUIL_Flags, GUILF_EqualSize | GUILF_EqualHeight,
  183.         GUIL_GadgetSpecID, GID_SAVE,
  184.         GUIL_GadgetSpecID, GID_USE,
  185.         GUIL_GadgetSpecID, GID_CANCEL,
  186.     TAG_DONE,
  187.  
  188.     TAG_DONE,
  189. };
  190.  
  191. /* Obligatory version tag */
  192.  
  193. static const char ver[] = "$VER: ReqTools2 1.0 " __AMIGADATE__;
  194.  
  195. /* Now, some globals used by Generic.o during the call to GF_CreateGUIA() */
  196.  
  197. int DEMO_InitialOrientation = GUIL_VertGroup;
  198.  
  199. STRPTR DEMO_WindowTitle = "ReqTools Preferences' GUI (2)";
  200. STRPTR DEMO_AppID       = "ReqTools2";
  201.  
  202. STRPTR DEMO_Version     = "1.0",
  203.        DEMO_LongDesc    = "Demo program - ReqTools prefs editor (2)",
  204.        DEMO_Author      = "Michael Berg",
  205.        DEMO_Date        = __AMIGADATE__;
  206.  
  207. BOOL   DEMO_Backfill    = FALSE;
  208.